約 5,522,552 件
https://w.atwiki.jp/mac_kai/pages/25.html
Total - (Today - Yesterday - ) 最終更新日 2011/05/26 23 24 Kaid Commander(旧) (2011/01/24) Kaid Commanderは公式サイトのダウンロードページからなくなってしまいました。 アプリケーションを入手することが出来てインストールしてみたいという方は参考にしてください。 ただし、いろいろとバグがあるようなので"kaiengine+jKaiUI"でkaiをすることをお勧めします。 Kaid Commanderのダウンロード (注:以下は当時ダウンロードできたときの情報) Team XLink(XLink kaiの制作元 英文です)の上部DOWNLOADSをクリック、Select your download..のプルダウンメニューから「Mac OSX 10.x kaid Commander Bundle(Universal)」を選びDownloadkcmd.1.0.RC4.2.dmg.tar というファイルがDownloadされる。ダブルクリックして、kcmd.1.0.RC4.2.dmgに展開。さらにダブルクリックしてボリュームとしてマウントする。 あとは、Kaid Commander.app とApplicationsというアイコンが表示されるので、Drag DropでApplicationフォルダ(任意)にコピーする。 ■2009/05/15現在ver7.0.0.7??かな? 注:ソフトウェアの更新は終わった模様。 Kaid Commanderの設定 KaidCommanderはkaiengineとjKaiUIがひとまとめされたものと思ってください。 起動に関してはこちらの方が楽なのですが、engineのバージョンが古いことや、設定ファイルの書き換えが必要だったりします。 また、PPCマックや一昔前のMacOSだと、ブックマークやフレンド登録が出来ないなど不具合があるようです。 Mac de kai編集メンバーはCommanderを使ってません。もっと詳しい情報が知りたい方は ここ とか ここ を参照してもらいたい。 補足 Kaid Commanderの設定ファイル、kaid.conf(Contents/Resources/kaid/kaid.conf)の「SniffDevice = en0」の箇所を自分が使用する無線LANアダプタのBSD装置名に書き換える必要がある。AirMacなら「en1」、無線LANアダプタなら「en2」とか「en3」に書き換える事。 jKaiUIの引っ張り出し方法 Kaid Commanderがあれば、kaiengineとjKaiUIでやる方は以下の方法でjKaiUIを取り出せる。 ダウンロードしたKaid Commanderのアプリケーションアイコンをcontrol+クリック、「パッケージの内容を表示」を選択。 Contents→Resources→GUI→jKaiUI をDrag Dropで引っ張り出す。 引っ張り出し先は、デスクトップやアプリケーションフォルダなど自分の管理しやすい場所にする。 その引っ張り出したjKaiUIをダブルクリックして起動する。ドックに登録して起動するのが楽かも。 上へ戻る コメント 本編に記載されていたKaidCommander関連の情報をここへまとめました。 -- あいぽ (2011-05-26 23 23 58) KaidCommanderがどうしても欲しい人は、 ここのフォーラムからkaidはどこ? を見てください。 -- あいぽ (2011-07-04 01 11 11) 名前 コメント
https://w.atwiki.jp/krisallenjapan/pages/97.html
(2010/06/18~06/24) 6/18 Alright With Moo (bday charity!!) http //www.heifer.org/siteapps/teampage/ShowPage.aspx?c=swL1KcNZLxH&b=5547921&teamid=3783658 Kris Allen Interview with WZTV FOX 17 - Part 2 Kris Allen moves from TV to tour, bringing his trademark authenticity http //bit.ly/aQMp9e Allen dishes on show, Radiohead http //www.hattiesburgamerican.com/article/20100617/ENTERTAINMENT/6170321 06/19 06/20 06/21 HAPPY BIRTHDAY KRIS!!!!!!!! クリス・アレンデイリー DAILY KRIS ALLEN/Happy 25th Bday Kris!! Kris Allen Fans Celebrate His Birthday With Charitable Cows http //newsroom.mtv.com/2010/06/21/kris-allen-birthday-charity/ Bill Gates just listed @mer89 s #alrightwithmoo video on his "daily on twitter" page http //paper.li/BillGates 06/22 New show 7/5 in Fayetteville, AR http //www.krisallenofficial.com/us/event/2010/07/05/kris-allen-live Kris Allen Headed to Fayetteville, AR via KrisAllenAddicts http //krisallenaddicts.blogspot.com/2010/06/kris-allen-headed-to-fayetteville-ar.html?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+Krisallenaddictscom+%28KrisAllenAddicts.com%29 vote for "The Truth" here! http //www.z104fm.com/pages/kruzesthrowdown.html alright with moo kark "Alright With Moo" - Kris Allen s Birthday Project on KARK http //arkansasmatters.com/news-fulltext/?nxd_id=324665 Kris will be at Mix 96.5 on July 3rd http //khmx.radio.com/#mix-live-lounge-kris-allen Official American Idol website wishes KrisAllen a Happy Birthday mentions AlrightWithMoo http //www.americanidol.com/news/view/pid/3394/ 06/23 Request "The Truth" - Requesting Tips Radio Station Contact Information via KrisAllenAddicts http //bit.ly/cyfSMe Kris Allen Talks About Returning to Northwest Arkansas http //nwahomepage.com/fulltext-news/?nxd_id=171115 http //bit.ly/9L1wfm The Truth has beat out both Maroon 5 and Jack Johnson the last two nights on this OH station http //q104.radio.com/2010/06/22/champion-the-truth-by-kris-allen/ interview with Kris Allen as he talks Arkansas as a great travel destination. http //www.visitmyarkansas.com/dena-woerner/default.aspx?id=700 Kris Allen will appear on If I Can Dream Next Week via mjsbigblog http //mjsbigblog.com/idol-headlines-for-062210-the-evening-edition.htm 06/24 Kris Allen Live On Fox Friends at 6 AM EST June 25th! http //www.krisallenofficial.com/us/news/kris-allen-live-fox-friends Kris Allen at the Grand Sierra (Reno, NV) on July 27th @ 8pm! Tix go on sale 6/25 http //www.z937fm.com/concert.asp
https://w.atwiki.jp/boplayer/pages/103.html
大会成績 動画 http //www.stage6.com/user/fackyou/video/2023534/ [紅白BO合戦 me_kai vs 手塚ZONE ] http //www.stage6.com/user/fackyou/video/2026492/ [紅白BO合戦 me_kai vs MaSato ] http //www.stage6.com/user/fackyou/video/2026987/ [紅白BO合戦 me_kai vs おーら ] ホームページ ギリ置きの精度◎。攻撃の組み立ての甘さが・・・。C+ (Bomberman Online International part5 105より引用 ) 評価(執筆者) 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/auroot/pages/25.html
APP(Tools) Root Explorer(有料:305円)(要root) https //market.android.com/details?id=com.speedsoftware.rootexplorer feature=search_result root化後にsystem内のファイルやアプリのパーミッション変更とファイル操作に使用 Root Explorerでのパーミッションの変更方法 例 プリインストールアプリが格納されているフォルダの場合 ① Root Explorerを起動 ② 起動するとSuperuserが起動するので許可する ③ /system/app/へ移動 ④ 画面右上の 「Mount R/W」ボタン をタップ ⑤ 削除したいプリインストールアプリなどがある場合はアプリを長押→Deleteをタップで削除完了。 Root Explorerで各ファイルのパーミッションの変更方法 ① パーミッションを変更したいファイルを長押。 ② Permissionsをタップ ③ あとはチェックを入れたり外したり アストロファイルマネージャー(無料) https //market.android.com/details?id=com.metago.astro feature=search_result SDカードの中身をみれます。 root化する前にSDカード内のファイルを実行するため使用 TitaniumBackup(無料)(要root) https //market.android.com/details?id=com.keramidas.TitaniumBackup feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5rZXJhbWlkYXMuVGl0YW5pdW1CYWNrdXAiXQ.. インストールしたアプリのバックアップや不要な初期アプリをアンインストールできます。 .
https://w.atwiki.jp/memcache/pages/36.html
HTTP Header Proxy ServerWeb Debugging Proxy LINK SSL Pass-Thu HTTP Header http //www.tohoho-web.com/ex/http.htm http //web-tan.forum.impressrd.jp/e/2010/01/12/7156 Proxy Server http //howto.ysn-jp.com/tor/tor_what.php http //www.atmarkit.co.jp/fwin2k/win2ktips/031autoproxy/autoproxy.html Web Debugging Proxy Fiddler http //www.fiddler2.com/fiddler2/ LINK Studying HTTP http //www.studyinghttp.net/ Smart http //www.rfs.jp/sb/perl/03/03.html HTTPプロトコルとサーバへのリクエスト(FUJITSU) http //jp.fujitsu.com/solutions/sdas/technology/web-apl/01-http-protocol.html
https://w.atwiki.jp/myfavoritepcsettings/pages/130.html
目次 ↑ 概要 URL インストール 設定 タグ 概要 Windowsの「既定のブラウザ」をユーザーレベルで設定できる 特に、Firefox Portableを「既定のブラウザ」にできる(普通はできない) URL http //windowsxp.mvps.org/defaultbrowser.htm (本家; 英語) http //www.nobodyplace.com/mutter/2009/01/05/151115.php (紹介記事; 日本語) インストール zip形式アーカイブを展開してexeを実行する 設定 「既定のブラウザ」にしたいブラウザの種類を Choose your Web Browser のリストの中から選択し、Applyアイコンをクリックする 実行ファイルを選択するダイアログボックスが現れたら、起動したいブラウザのexeファイルのパス(Firefox Portableの場合は、FirefoxPortable.exe のパス)を選択して「開く」をクリックする タグ
https://w.atwiki.jp/defaults/pages/20.html
target="_blank"のリンクで新規タブを作成 対応:Safari 3(他環境未確認) 非対応: defaults write com.apple.Safari TargetedClicksCreateTabs -bool yes 元に戻す場合は defaults delete com.apple.Safari TargetedClicksCreateTabs Debugメニューを表示 対応:Safari 2、Safari 3(他環境未確認) 非対応: Safari 2の場合 defaults write com.apple.Safari IncludeDebugMenu -bool yes 元に戻す場合は defaults delete com.apple.Safari IncludeDebugMenu Safari 3の場合 defaults write com.apple.Safari IncludeInternalDebugMenu -bool yes 元に戻す場合は defaults delete com.apple.Safari IncludeInternalDebugMenu Safari 3では、Developメニューを環境設定から表示できるようになっている。 テキスト入力中のウインドウを閉じるときの確認ダイアログを抑制 対応:Safari 3 非対応:Safari 2以前 defaults write com.apple.Safari DebugConfirmTossingUnsubmittedFormText -bool no 元に戻す場合は defaults delete com.apple.Safari DebugConfirmTossingUnsubmittedFormText ユーザエージェント文字列を変更 対応:Safari 3(他環境未確認) 非対応: defaults write com.apple.Safari CustomUserAgent "\"hoge hoge\"" とコマンドを実行するとユーザエージェント文字列を hoge hoge に変更することができる。 元に戻す場合は defaults delete com.apple.Safari CustomUserAgent キャッシュを無効にする 対応:Safari 4(他環境未確認) 非対応: defaults write com.apple.Safari WebKitPageCacheSizePreferenceKey -int 0 元に戻す場合は defaults delete com.apple.Safari WebKitPageCacheSizePreferenceKey Faviconを非表示にする 対応:Safari 4(他環境未確認) 非対応: アドレスバーに表示される各WebサイトごとのFaviconを表示しないようにする場合 defaults write com.apple.Safari WebIconDatabaseEnabled -bool no 元に戻す場合は defaults delete com.apple.Safari WebIconDatabaseEnabled Cover Flow、TopSitesのWebサイト・プレビューを保存しないようにする 対応:Safari 4(他環境未確認) 非対応: "~/Library/Caches/com.apple.Safari/Webpage Previews"に大量に各Webサイトのプレビュー画像が保存されるのを抑制します。(Cover Flow、TopSites画面が寂しいことになりますが) defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2 元に戻す場合 defaults delete com.apple.Safari DebugSnapshotsUpdatePolicy レイアウトを始めるまでの待ち時間を変更 対応:Safari 4(他環境未確認) 非対応: レイアウトを始めるまでの待ち時間がデフォルトでは、1秒となっているので、1秒より小さくすると体感的に早くなるかもしれません。 defaults write com.apple.Safari WebKitInitialTimedLayoutDelay 0.25 DNSプリフェッチ機能を無効 対応:Safari 5(他環境未確認) 非対応: defaults write com.apple.Safari WebKitDNSPrefetchingEnabled -bool no 元に戻す場合 defaults delete com.apple.Safari WebKitDNSPrefetchingEnabled 文字エンコーディング自動判別を有効にする 対応:Safari 5.0.x(他環境未確認) 非対応:Safari 5.1.x defaults write com.apple.Safari WebKitUsesEncodingDetector -bool yes 元に戻す場合 defaults delete com.apple.Safari WebKitUsesEncodingDetector
https://w.atwiki.jp/englishlanguage/pages/639.html
KAI... Kai, Masayuki. 甲斐雅之. 2004. 「Trave-guide textにおける屈折とof属格の交替:情報構造の観点から」河上誓作教授退官記念論文集刊行会(編)『言葉のからくり 河上誓作教授退官記念論文集』 東京:英宝社. Kaimori, Yusuke. 貝森有祐. 2018. 「非選択目的語を伴う英語使役移動構文から見る動詞と構文の融合」中村芳久教授退職記念論文集刊行会(編)『ことばのパースペクティヴ』, pp. 234-247. 東京 開拓社. Kaislaniemi, Samuli, Mel Evans, Teo Juvonen Anni Sairio. 2017. “A Graphic System Which Leads Its Own Linguistic Life”? Epistolary Spelling in English, 1400–1800", in Exploring Future Paths for Historical Sociolinguistics, ed. Tanja Säily, Arja Nurmi, Minna Palander-Collin Anita Auer, pp. 187-213. Amsterdam John Benjamins. Kaislaniemi, Samuli. 2009. "Encountering and Appropriating the Other East India Company Merchants and Foreign Terminology", in The Language of Daily Life in England (1400-1800). Arja Nurmi, Minna Nevala Minna Palander-Collin ed. pp. 219-251. Amsterdam John Benjamins. Kaita, Kousuke. 2017. "Note Prohibitive Constructions of Old English ne ceara and Old High German ni curi(t)". Chiba University. Graduate School of Humanities and Social Sciences Research Project Reports 320 38-53. Kaita, Kousuke. 2018. "Old ENglish Magan An Expression of Adhortative Wish", in Aspects of Medieval English Language and Literature Proceedings of the Fifth International Conference of the Society of Historical English Language and Linguistics, ed. Michiko Ogura Hans Sauer, pp. 239-256. Bern Peter Lang.
https://w.atwiki.jp/linux_kai/pages/24.html
Total - (Today - Yesterday - ) 最終更新日 2010/08/09 20 03 ここでは、PLANEX GW-USMicroN (Ralink RT3070L)を使用した無線LANアダプタの設定方法を載せています。 当然ながらインストールなどすべての作業は 自己責任でお願いします。 1.ドライバのインストール 2.ドライバとインタフェースの確認 3.kai設定 コメント 1.ドライバのインストール WiFiアダプタをPCに取り付けます。 WiFiアダプタのVenderIDとProductIDを確認します。ここでは、PLANEX GW-USMicroNを使用してます。 #このWiFiアダプタは、VenderID 2019 ProductID ed14 になります。 $ lsusb Bus 001 Device 002 ID 2019 ed14 PLANEX Ralink社サイトからRT3070USB(RT307x)のドライバをダウンロードします。 ダウンロードしてきたドライバを解凍します。 $ cd ~/Downloads $ tar jxvf DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.bz2 $ cd DPO_RT3070_LinuxSTA_V2.3.0.2_20100412/ WiFiアダプタのVIDとPIDを追加します $ vi ./common/rtusb_dev_id.c #編集内容 {USB_DEVICE(0x2019,0xED14)}, /* PLANEX GW-USMicroN (RT3070L) */ もし他WiFiアダプタなら... {USB_DEVICE(0x0411,0x015D)}, /* BUFFALO WLI-UC-GN (RT3070L) */ ... 35行目にライセンス情報を追加します。(参考:http //www.geocities.jp/o110me/rt3070/3/3.html) $ vi ./os/linux/usb_main_dev.c MODULE_LICENSE("GPL"); XLINKモードを有効にします。#"n" - "y"に変更します。 $ vi ./os/linux/config.mk # Support XLINK mode HAS_XLINK=y ファイルパスとバージョン情報を修正します。 $ vi ./include/os/rt_linux.h #define STA_PROFILE_PATH "/etc/Wireless/RT3070STA/RT3070STA.dat" #define STA_DRIVER_VERSION "2.3.0.2" ファイル名を変更して、初期値を設定します。 $ mv RT2870STA.dat RT3070STA.dat $ vi ./RT3070STA.dat ... SSID=PSP_AULJM05500_L_MHP2Q000 NetworkType=Adhoc Channel=1 ... PSP_XLINK_MODE=1 ... ドライバをコンパイルします。 $ sudo make clean $ sudo make ドライバをインストールします。 $ sudo make install ドライバを読み込みます。 $ sudo modprobe rt3070sta 2.ドライバとインタフェースの確認 ドライバ情報を確認します。 $ lsmod | grep rt3070sta rt3070sta 572042 0 $ modinfo rt3070sta | head -10 filename /lib/modules/2.6.32-22-generic/kernel/drivers/net/wireless/rt3070sta.ko version 2.3.0.2 license GPL description RT2870 Wireless Lan Linux Driver ... インタフェースを確認します。 $ iwconfig ra0 Ralink STA インタフェースを有効化します。 $ sudo ifconfig ra0 up インタフェースの確認をします。 $ ifconfig ra0 ra0 Link encap Ethernet HWaddr 00 90 cc ?? ?? ?? inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0 inet6 addr xxxx xxx xxxx xxxx xxxx/64 Scope Link UP BROADCAST RUNNING MULTICAST MTU 1500 Metric 1 RX packets 0 errors 0 dropped 0 overruns 0 frame 0 TX packets 0 errors 0 dropped 0 overruns 0 carrier 0 collisions 0 txqueuelen 1000 RX bytes 305891 (305.8 KB) TX bytes 5129 (5.1 KB) $ iwconfig ra0 ra0 Ralink STA ESSID "PSP_AULJM05500_L_MHP2Q000" Nickname "RT2870STA" Mode Ad-Hoc Frequency=2.412 GHz Cell D2 AD 7E ?? ?? ?? Bit Rate=135 Mb/s RTS thr off Fragment thr off Link Quality=85/100 Signal level -53 dBm Noise level -115 dBm Rx invalid nwid 0 Rx invalid crypt 0 Rx invalid frag 0 Tx excessive retries 0 Invalid misc 0 Missed beacon 0 上記の内容と違う場合は、上位ページの「違うドライバが読み込まれたときは??」を参照ください。 3.kai設定 XLink Kai ConfigurationのNetworkAdapterは、"ra0"を選択します。#XLink Kai Configurationは、kai設定編のkai設定を参照してください。 このページについての指摘や情報がありましたらコメントに投稿をお願いします。 以上で主な設定は終わり。 上へ戻る コメント メーカーページへのリンクは 動作保証外での条件での使用に当たるため、リンクしないでください -- 名無しさん (2010-06-12 21 03 01) 名前 コメント
https://w.atwiki.jp/0x0b/pages/89.html
ハイパーテキスト転送プロトコル RFC 2616 WebブラウザとWebサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル リクエスト-レスポンス型 トランスポート・プロトコルとして通常TCPを使用 基本的な考え方は非常に単純であり「何を」「どうして」ほしいのかを相手に要求する。「何を」に当たるのがURL、「どうして」がメソッドにあたる。 World Wide WebにおけるWebページなどのリソースは、Uniform Resource Identifierによって指定される。 ポート番号80をデフォルトとして使用する(送信時は8080)。 TLSで暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれる(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられる)。 HTTP は基本的にサーバが状態を保持しない (stateless) プロトコルだが、データベースなどを使用するWebアプリケーションにおいては状態保持が必要だったため、そのためにいわゆる Cookie とよばれる機構が Netscape Communications Corporation によって導入された。Cookie を使用することによって状態を管理し、"セッション" を維持することが可能になる。 HTTPの拡張プロトコルとしてWebDAVがある。 UPnPでは、HTTPをUDP上で使用するHTTPUや、マルチキャストで使用するHTTPMUが規定された。 HTTP/0.9 URLのみの簡単なやりとり HTTP/1.0 NNTPやSMTPのような各種ヘッダが定義 HTTP_Cookieなどの利用 HTTP/1.1 複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様 バーチャルホストをサポートした。インターネット人気に伴い多くの企業がWebサイトを持ち始めたが、当時ではまだまだ企業が自前のWebサーバを運用するのは人員、効率の問題で難しかったためISPのサーバでホスティングをしていた。当時はまだ一社ごとに専用サーバを用意するほどのことでもないため一台のサーバで複数のWebサイトを運用していた。 しかしバーチャルホストには問題がある。例えばある1台のサーバに foo.example.com と bar.example.com という二つの仮想Webサーバがあるとする。ここではクライアントは http //foo.example.com/index.html にアクセスしたいとする。そのためにはまず foo.example.com をIPアドレスに解決するためDNSサーバに問い合わせ、そのサーバにアクセスし GET index.html を要求する。しかしサーバ側のIPアドレスは foo.example.com と bar.example.com 共におなじIPアドレスである。もし foo.example.com にも bar.example.com にも index.html というファイルが存在すればクライアントはどちらのサーバにアクセスしたのかわかるすべがない。 これを解決するにはそれぞれにIPアドレスを付与することで解決できるが、IPv4の資源を無駄にすることになる。 HTTP/1.1ではこれを解決するためにHostヘッダを追加した。 HTTP/1.0のヘッダ GET /index.html HTTP/1.0 HTTP/1.1のヘッダ GET /index.html HTTP/1.1 Host foo.example.com 動作 通信の開始 他のプロトコル同様クライアント側とサーバ側ではHTTPの役割が大きく異なる。HTTP通信を開始できるのはクライアント側のみである。 クライアント側はサーバにリクエストを送り、サーバはクライアントにレスポンスを返すのが最も典型的なHTTPのやりとりである。 接続 システム間でメッセージをやりとりするにはTCP接続を確立させる必要がある。 HTTP/0.9ではクライアントのリクエストごとにTCP接続を確立させる必要があったが、これは当時のWebサイトがシンプルなテキストベースであることが多かったためである。近年ではJavaScriptやアニメーション画像など、多数のオブジェクトが埋め込まれたWebサイトが一般的となってきているが、これら全てのオブジェクトを取得するたびにTCP接続を確立するのはサーバやネットワークに大きな負担を強いるため、HTTP/1.1では持続的接続がサポートされることとなった。ただしこの機能が利用できるのはサーバ側がその要求を許可した場合のみである。 パイプライン クライアントは前のリクエストに対するサーバの応答を待たずに別のリクエストを発行できる。 メソッド HTTPでは8つのメソッドが定義されている。ただし実際のHTTP通信ではGETとPOSTメソッドだけで殆どを占める。 HTTPメソッドの一覧 メソッド HTTP/0.9 HTTP/1.0 HTTP/1.1 GET ○ ○ ○ POST ○ ○ PUT △ ○ HEAD ○ ○ DELETE △ ○ OPTION ○ TRACE ○ CONNECT ○ GET 指定されたURIのリソースを取り出す。HTTPの最も基本的な動作で、HTTP/0.9では唯一のメソッド。 POST GETとは反対にクライアントがサーバにデータを送信するメソッドである。Webフォームや電子掲示板、Wikiなどに投稿する。GETの場合と同じくサーバはクライアントにデータを返すことができる。 PUT 指定したURIにリソースを保存する。URIが指し示すリソースが存在しない場合は、サーバはそのURIにリソースを作成する。画像のアップロードなどが代表的。 DELETE 指定したURIのリソースを削除する。 OPTION サーバを調査するメソッド。例えばサーバがサポートしているHTTPのバージョンなどを調査できる。 HEAD GETと似ているがサーバはHTTPヘッダのみ返す。クライアントはWebページを取得せずともそのWebページが存在するかどうかを知ることが出来る。例えばWebページのリンク先が生きているか検証するときなどにリンク先のデータを全て取得することなく調査することが出来る。 TRACE サーバまでのネットワーク経路をチェックできる。サーバは受け取ったメッセージのそれ自体をレスポンスのデータにコピーして応答する。WindowsのTracertやUNIXのTracerouteとよく似た動作。 CONNECT 暗号化したメッセージをプロキシで転送する際に用いる。 サーバの連携 バーチャルホスト リダイレクト 301 MovedというステータスコードとURIを受け取りクライアントはこの受け取ったURIに再度GETを送る。 クッキー(HTTP_Cookie) HTTPメッセージ クライアントからのHTTPリクエストは3つの要素から構成される。それぞれメソッド、URI、HTTPのバージョンでありスペースで区切られている。 下にもっとも単純な、クライアントとサーバ(www.google.co.jp 80)とのHTTPプロトコルのやり取りの例を挙げる。 クライアントのリクエスト GET / HTTP/1.0 GETがメソッド、URIは / 、バージョンはHTTP/1.0であることを示す。 URIは/でルートリソースを対象にしたリクエストであることを示している。TRACEなど特定のサーバを対象としないリクエストの場合には*が表示される。 サーバのレスポンス HTTP/1.0 200 OK Cache-Control private Content-Type text/html Set-Cookie PREF=ID=72c1ca72230dea65 LD=ja TM=1113132863 LM=111 3132863 S=nNO7MIp W2o7Cqeu_; expires=Sun, 17-Jan-2038 19 14 07 GMT; path=/; domain=.google.co.jp Server GWS/2.1 Date Sun, 10 Apr 2005 11 34 23 GMT Connection Close html head meta http-equiv="content-type" content="text/html; charset=Shift_JI S" title Google /title style !-- ・・・以下省略 上のリクエストのGETにあたる部分をメソッドといい、 HTTP/1.0では、GET, HEAD, PUT, POST, DELETE, LINK, UNLINK、 HTTP/1.1ではさらに、OPTIONS, TRACEがある。 GETメソッドのレスポンスにはヘッダ情報のあとに改行が挟まれ、コンテンツ本体が送られる。 HEADメソッドのレスポンスにはコンテンツサイズや更新日時などの情報を含むヘッダのみが送られる。 また、リクエストの2行目以降はヘッダを送る。 HTTPヘッダフィールド ヘッダの各要素は フィールド名 内容 のペアで構成される。 ブラウザの情報を表すUser-Agent、使用候補言語を表すAccept-Language、他ページへのリンクを辿った場合にそのリンク元ページのURLを表すRefererなどが代表的なフィールドである。 なお、リクエスト時のHostヘッダはHTTP/1.1では必須であるが、HTTP/1.0では無くても良い。 但し、サーバがバーチャルホストを利用している場合は、Hostヘッダが無いとリソース取得に失敗するので、たとえHTTP/1.0を使用していてもHostヘッダを付加しなければならない。 HTTPヘッダフィールドの一覧 リクエストヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Acceptクライアントの受け入れ可能コンテンツタイプを示す○○ Accept-Charsetクライアントの受け入れ可能文字セットを示す○○ Accept-Encodingクライアントの受け入れ可能文字エンコーディングを示す○○ Accept-Languageクライアントの受け入れ可能言語を示す○○ Authorizationクライアントの認証情報を示す○○ Cookieクライアントの状態管理情報をサーバに返す Cookie2HTTP/1.1のSet-Cookie2ヘッダの受け入れ可能をサーバに知らせる Expectクライアントがサーバに期待する動作を示す○ Fromリクエスト発行者個人の情報を示す。一般的に電子メールアドレスを使用する○○ Host要求しているオブジェクトがあるホストを示す○ If-Matchif文を用い条件が真の場合のみリクエストを処理するようサーバに要求する○ If-Modified-Since指定日及び指定時刻以降にオブジェクトが変更されている場合のみリクエストを処理するよう要求する○○ If-None-MatchIf-Matchの逆で条件が真でない場合のみリクエストを処理する要求○ If-Range条件が真の場合のみ指定したオブジェクトの範囲を返すようサーバに要求する○ If-Unmodified-SinceIf-Modified-Sinceの逆で真でないときのみ実行する○ Max-Forwardsリクエストの中間システム経由数を最大いくつまでかを指定する○ Proxy-Authorizationクライアントがプロキシサーバに対して自身の認証を行う○ Rangeオブジェクト全体でなくリソースの一部を要求する○ Refererリクエストの出所を示す。一般的にはユーザの辿ったWebページのURLが用いられる。○○ TEレスポンスの受け入れ可能転送エンコーディングを示す○ レスポンスヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Accept-Rangesオブジェクトの一部に対するリクエストをサーバが受け入れ可能か示す○ Ageオブジェクトの経過時間を秒単位で返す○ AllowオブジェクトがサポートするHTTPメソッドを示す○○ ETagオブジェクトのエンティティタグ値を示す○ Locationオブジェクトの場所を示す○○ Proxy-Authenticateプロキシサーバがクライアントに認証を要求するときに用いる○ Retry-Afterリクエストの再試行をいつ行うかをクライアントに通知する○○ Serverサーバのベンダー名、バージョン番号を占めす○○ Set-Cookie2サーバがクライアントにCookieを送信するときに用いる Varyサーバのレスポンス内容を決定する際にリクエストURI以外に使用したHTTPヘッダのリストを示す○ WWW-Authenticateクライアントに対してリクエストの再発行を要求する。認証情報も含まれる○○ 一般ヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Cache-Controlメッセージの経由する中間キャッシュの動作を指示する○ Connection中間システムが転送すべきでないヘッダのリストを示す○○ Dateメッセージの作成日時を示す○○ Pragmaメッセージに関する追加情報を示す○○ Trailerメッセージボディの後に追加のヘッダーが表れることを示す○ Transfer-Encodingクライアントの転送を目的としたオブジェクトのエンコーディングを示す○ Upgrade通信相手に別のプロトコルにアップデートするよう要求する○ User-AgentクライアントのWebブラウザなどの情報を示す○○ Warningメッセージに関する追加情報を示す。通常はキャッシュの問題を警告するときに使われる○ エンティティヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Content-Encodingオブジェクトのエンコーディングを示す○○ Content-Languageオブジェクトの言語(人間の言語)を示す○○ Content-Lengthオブジェクトのサイズをバイト単位で示す○○ Content-Locationオブジェクトの場所を示す○ Content-MD5オブジェクトのメッセージダイジェストを運ぶ○ Content-Rangeメッセージボディで運ばれるオブジェクトの範囲を示す○ Content-Typeオブジェクトのタイプを示す○○ Expiresオブジェクトの有効期限の日時を示す○○ Last-Modifiedオブジェクトが最後に変更された日時を示す○○ Accept サーバのレスポンスに含まれるメッセージボディで受け入れることが出来るコンテンツタイプと各コンテンツタイプの相対的な優先度を指定するリクエストヘッダ。指定できるコンテンツタイプはIANAによって定義されている。 Accept text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c 上記のようにAcceptヘッダには行をわけて複数のコンテンツタイプを指定できる。上記の例はいずれの4のコンテンツタイプのいずれも受け入れ可能であることを示す。0.5や0.8といった数字は品質係数で0~1の範囲の数値である。数値の指定がなければ1.0となる。 text/plain; q=0.5 text/html text/x-dvi; q=0.8 text/x-c Accept-Charset レスポンスで返されるメッセージボディの文字コードを指定するリクエストヘッダ。Acceptと同じく複数指定でき品質係数も設定できる。定義済み文字セットはIANAが管理している。 Accept-Charset unicode, *; q=0.8 この例だとクライアントはUnicode文字セットを優先的に希望しているが他の文字セットとの相対優先度0.8で受け入れている。ただしサーバからのレスポンスのHTTPヘッダそのものの文字コードは常にISO-8859-1である。 Accept-Encoding Accept-Language レスポンスの言語(人間の言語)に対する優先度を指定する。言語コードはISO-639の2文字の省略コードを用いる。書き方は他のAccept-群と変わらず。 Accept-Language en-gb, en; q=0.8 上記の例はまずイギリス英語を要求し、利用できない場合はその他の英語を要求する。 Accept-Ranges Acceptで始まる他のヘッダフィールドと違いレスポンスヘッダーである。現在の仕様では2つの指定方法しかない。 Age リソースの推定経過時間を表示するレスポンスヘッダ。キャッシュサーバーはAgeヘッダの値からキャッシュしたリソースが有効かどうかを判定する。 Allow Authentication-info ユーザ認証のやりとりの最後で用いられる、成功したレスポンスのサーバが含めることの出来るレスポンスヘッダー。 Authorization サーバに対するクライアント自身の認証を行うことが出来る。 Cache-Control キャッシングの動作を指定するためのマスターヘッダ。 Connection Content-Encoding Content-Language リソースを英語などの自然言語で示すのに使われる。言語の指定はAccept-Languageヘッダと同じ。 Content-Length Content-Location Content-MD5 メッセージボディが変更されず宛先に届くことを保証する。MD5アルゴリズムを実行する。ただし悪意の改ざんに対しては当然MD5も改ざんされるのであまり機能はしない。どちらかといえば偶発的な変更の保証をしている。 Content-Range ダウンロードの再開に用いられる。 Content-Type メッセージボディに含まれるオブジェクトタイプを示す。次の例はリソースがテキストファイル、文字セットはISO-8859-4を使用していることを示している。 Content-Type text/plain; Charset=ISO-8859-4 Cookie クライアントがHTTP状態管理を望む場合にサーバから受け取ったクッキーを以後のリクエストに次の例のようなヘッダーを付加する。 Cookie $Version="1"; NAME="VALUE"; $Path="/shopping"; $domain="www.shop.com"+ $Port="80" $VersionはHTTPのバージョン、NAMEはクッキーの名前である。$から始まるクッキー名は使用が禁止されている。 Cookie2 基本的にCookieヘッダーとCookie2ヘッダーは別物である。 Date サーバがメッセージを生成した日時を示す。リソースの時間を示すLast-Modifiedヘッダーとは区別する必要がある。 HTTP/1.1では次のような形式を用いるようRFC1123で定義されている。 Date Sun, 06, Nov 1994 08 49 37 GMT HTTP仕様ではレスポンスにDateヘッダーを含めることを求めている。ただしレスポンスのステータスがサーバエラーの場合にはDateヘッダーは返らない。 ETag 主にキャッシングのパフォーマンスを向上する目的で使われる。 Expect サーバに対して特定の動作の期待を知らせる。用途としてはクライアントがサーバに対して100 Continueステータスを返すことを期待する場合に使われる。 Expect 100-continue サーバが期待に応じれない場合は417 Expectation Failedを返す。クライアントがいくつかのプロキシ経由で通信している場合、各プロキシサーバはExpectヘッダの一切の修正を許されない。 Expires オブジェクトの有効期限を示す。このヘッダで指定された日時までキャッシュはレスポンスのコピーを保持し、リクエストに対するレスポンスとして返すことが出来る。サーバがオブジェクトのキャッシュを望まない場合にはExpiresヘッダに過去の日時を設定することが多い。また、HTTP仕様では1年以上先の日時は設定できない。 Expires Thu, 28 Aug 2010 16 00 00 GMT Cache-Controlヘッダのmax-ageディレクティブはExpiresヘッダより優先されるため注意が必要である。 From リクエストを発行したユーザを特定することが出来る。1990年代では電子メールアドレスを設定することが多かったが、迷惑メールの問題もあり現在では殆ど使われていない。 From hoge@hogehoge.com Host 主にレンタルサーバのサポートを目的としてHTTP/1.1で導入された。現在ではHostヘッダを利用できない場合レンタルサーバのウェブサイトとまともな通信が出来ないと言ってよい(詳細はHTTP#歴史を参照)。 If-Match クライアントのリクエストを条件付きのリクエストにするために使われる。サーバは一定の条件が真であった場合のみリクエストを受け入れることが出来る。例えばウィキペディアを編集する際、記事のソースを取得し、書き換える際の間に別のユーザが既に編集していないかを判断するときなどに用いられる。 「if文」も参照 利用者:HogeがHTTPの記事を取得。ETagは1234 利用者:HageがHTTPの記事を取得。ETagは1234 利用者:HogeがHTTPのETagを再度取得。先ほど取得したETag 1234と現在のETag 1234が一致。 利用者:HogeがHTTPの記事を編集。ETagは1256になる。 利用者:HageがHTTPのETagを再度取得。先ほど取得したETagと現在のETagはマッチせず。 サーバは利用者:Hageの書き込みを拒否。 If-Modified-Since このヘッダーで指定された日時以降にオブジェクトが変更されている場合のみリクエストに応答するようサーバに要求する。リソースの削減に効果がある。 If-None-Match If-Matchと逆で条件が真でない場合のみリクエストを処理するよう要求する。 If-Range クライアントがキャッシュにオブジェクトの一部分を持っている場合にパフォーマンスを向上できる。 If-Unmodified-Since If-Modified-Sinceの逆の働きをする Last-Modified サーバオブジェクトの最終更新日時を示す。クライアントはこのヘッダを利用しIf-Modified-Sinceヘッダ等と組み合わせることによって効果を発揮する。 Location サーバがクライアントにリダイレクト先URLを知らせる際に用いられる。一般的にステータスコードが3xx代のレスポンスと共に使われるが201 Createdのレスポンスでも使うことが出来る。Content-Locationヘッダと名前が似ているが全く関係のない別のヘッダであるため注意。 Max-Forwards プロキシサーバ等を経由する際の最大ホップ数を指定する。二重ループなどでサーバから応答が得られない場合の問題解決の際、OPTIONメソッドやTRACEメソッドと共に用いられる。 HTTPステータスコード ステータスコードはクライアントのリクエストが成功したかどうかを示した上で追加情報を提供するいずれも3桁の数字から成る。具体的には100-199が情報提供、200-299が成功を示す。300-399はリダイレクト、400-499はエラーを示す。 セキュリティ技術 Basic認証 HTTP/1.1でBasic認証が定義されており最も単純なセキュリティ技術である。しかし仕様書を読むと定義を書いた著者自身が認証技術に疎いことがよくわかる。『HTTPプロトコル セキュア&スケーラブルなWeb開発』の著者は「基本認証を用いるくらいならなにも使わない方がまし」と著書に書いている。通常サーバは401ステータスコードで応答する。 行末文字はWindowsと同じCRLF。 RFC 2818 - HTTP Over TLS RFC 2817 - Upgrading to TLS Within HTTP/1.1 RFC 2616 - HTTP/1.1 ハイパーテキスト転送プロトコル -- HTTP/1.1 RFC 2068 - HTTP/1.1(初版,RFC 2616 によって obsolete) TS X 0085 2004 - ハイパテキスト転送プロトコル HTTP/1.1 標準仕様書(TS) RFC 1945 - HTTP/1.0 HttpTea Freeware HTTP Logger Studying HTTP